Given the specific example starting with a row and ending up with a column, I would do the same steps the other way round, although I don't like the idea of ending up with a filtered sheet. If you can sort the data (ie the order does not matter) that would get all the blanks to one place where you can delete out the rows.
Anyway, I propose a better all round solution using advanced filter:
select your row of original data, copy, select a cell somewhere on a new sheet with at least one empty cell above it, paste > paste special, tick 'transpose', OK
Now you have a column with gaps.
In the cell above it, give the column a label, say "data". Make it bold (Ctrl-B) so Excel will spot this is a title even though it is text just like the rest of the column.
In another cell somewhere (eg two cells to the right), type the same label, and in the cell beneath an asterisk (* - a wildcard for later).
Select your column with all its gaps and header
Go to Data ribbon > sort and filter group and click on Advanced Filter.
Tick "Copy to another location"
Check the "list range" has your selected column of data.
Click the refedit button next to "Criteria range" and select the two cells you created before with the header and wildcard
For the "copy to" range select any cell on this sheet, eg a couple more columns over to the right.
Click OK.
Job done. You now have a new set of contiguous data and you can delete the other columns.
Note that you can't use advanced filter to copy the new list to another sheet except if you start from that sheet in the first place, then come back to select the data and criteria. For a quick and dirty approach, this is a lot simpler.