Никакой мистики. У Вас неверно сформирован результирующий массив. Структура его описана [url=dev.1c-bitrix.ru/community/blogs/vws/novye-sobytiya-kataloga.php]здесь[/url]. Вкратце - в результирующем массиве должен быть ключ PRICE, содержащий информацию о цене (величина, валюта, ID ценового предложения, etc)
Использование в данном обработчике CCatalogProduct::GetByIDEx не может быть оправдано ничем. Он создает совершенно излишнюю в этом контексте нагрузку на базу.
Код по ссылке с Хабра - яркий пример, как НЕ НАДО использовать этот обработчик.