Why would your implementation using zip be better than the OP's implementation?
Would zip better support any of the other transforms that are coming? (To search for words that are right-to-left or bottom-to-top in the original grid.)
Would zip even support a diagonal transform? (The documentation seems to indicate that it favors rectangular transforms.)
OP's transform using join:
[''.join([r[col] for r in grid1]) for col in range(len(grid1[0]))]