Какой метод лучше использовать для определения пустой и инициализированной переменной?
Если выбирать из этих двух
То второй метод лучше. Он хотя бы иногда будет работать. 
В отличие от первого, 
Который просто безумный треш.
А вот почему - ты сам должен ответить. Прочитав документацию по использованным тобой функциям.
Там же - сюрприз! - ты найдешь и ответ на свой вопрос. Настоящий ответ, а не то жалкое блеянье, которое тебе напишет здесь очередной мимо проходивший школьник.
все зависит от того что вы хотите проверить.
empty - делает приведение типов, т.е. если внутри arResult - пустой массив или например 0, то !empty($arResult) == false
$arResult != "" работает только для строк.