В catalog.section используется класс Bitrix\Iblock\Component\ElementList и вот в нем для гетлиста мерджится массив глобального фильтра и массив с внутренним фильтром array_merge($globalFilter, $filterFields) и вот в $filterFields тоже есть ключ =ID и при мердже он затирает твой =ID
То есть в $prefilterCustom перед ID надо убрать =
$prefilterCustom = array(
"ID" => $arElements,
);