Нашел в чем проблема. Я в очередной раз нашел ошибку в QFtp.
Оказывается все команды, который посылаются серверу преобразуются с помощью метода toLatin1(), что и херит все русские символы в командах( например "CWD /pub/русская папка"). Для тех кому понадобится исправить:
в файле qftp.cpp в методе bool QFtpPI::startNextCmd() строчку commandSocket.write(currentCmd.toLatin1()); нужно заменить на commandSocket.write(currentCmd.toAscii()); и будет счастье в жизни