Я так понимаю, что при старте программы текущим является путь, по которому лежит бинарник. QFileDialog просто изменяет текущий путь, вот всё и ломается.
Можно проверить, если запустить с другим Working Dir из-под отладчика, например.
Вообще, если мне надо что-то искать в каталоге, который в одной иерархии с bin каталогом проги, то я беру путь к исполняемому файлу и от него пляшу