Как всегда, полное непонимание того что ты делаешь, какой же это треш на список делать str, зачем на каждой итерации повторять это, потом эту кривость совать как аргумент для скачивания.
file_list.append(file)
зачем?
file_list1=str(file_list)
вот самый треш
ftp.retrbinary('RETR' + file_list1, tempfile.write)
зачем ты сюда это треш стал совать
#ftp.retrbinary('retr ' + str(files), tempfile.write)
еще раз намекает, что ты программируешь метод тыка, не понимая что ты делаешь.
А теперь главный вопрос, что тебе мешало просто делать
ftp.retrbinary('RETR ' + file, tempfile.write)
ЗЫ ну и сразу FTP это уставший протокол, забудь про него, твоя задача элементарно решается через rsync и подобные инструмент, а не этими кривыми костылями