Если ты вызываешь функцию которая должна вывести тебе в ListBox объект, и функция считывает объект, то при возрате пустого объекта он просто будет выводить его, в случае с null будет ошибка.
Именно в таких ситуациях когда функция должна отдавать что-то на вывод, в реализации этой функции лучше всего делать в возрате при ошибке пусттй объект, ибо с null придётся делать проверку.
Но если функция никак не взаимодействует с выходными данными, то желательно юзать null и обрабатывать его уже по полной, а не просто возращая якобы "хороший" результат.
И еще, в функциях которые учавствуют в выводе, можно возращать null если не нужно производить вывод этого объекта, в таком случае достачно просто проверки на null