Насколько мне известно, подобный запрос в 1 в битриксе не завернуть (минимум 2 независимых запроса).
Дело в том, что Битрикс работает с entities, и у него нет queryBuilder'а, соответственно он может строить запросы только к известным сущностям.
А далее начинается пляска, потому как часть запроса с IFNULL является ExpressionField, а join является ReferenceField и выражение expression нельзя применить для результата reference.
У Вас будет ошибка:
Expected ScalarField or ExpressionField in `*` build_from, but `Bitrix\Main\Entity\ReferenceField:*` was given. (0)