Мне кажется, что дело не в методе fetch. Основной вопрос заключается в том, что находится в переменной $em, в тот момент, когда находятся элементы.
Вы же знаете, что при значении $em = true, это аналогично $em = 1, а $em = false - ничего не найдет.
После присвоения $em допишите код:
ob_start();
echo "<pre>";
var_dump( array(
'ENTITY_ID' => 'LEAD',
'VALUE' =>$em ,
'COMPLEX_ID' => 'EMAIL_WORK'
));
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test_bp_val.txt', ob_get_clean(), FILE_APPEND);
И поймете почему он возвращает то или иное значение