Если вы ЗНАЕТЕ, что строки не имеют начальных / конечных пробелов:
>>> strings = ['foo','','bar','moo']
>>> ' '.join(x for x in strings if x)
'foo bar moo'
в противном случае:
>>> strings = ['foo ','',' bar', ' ', 'moo']
>>> ' '.join(x.strip() for x in strings if x.strip())
'foo bar moo'
и если в какой-либо из строк есть пробелы без начального / конечного пробелов, вам, возможно, придется работать еще усерднее. Пожалуйста, уточните, что у вас есть на самом деле.