Union erzwingt soweit ich weiß gleiche Datentypen.
Edit: und richtet sich bei der Typbestimmung nach dem dem 1.Select. Was Du schilderst, sieht so aus, als ob
MySQL an dieser Stelle die Zeichenfolge
'1234' als Varchar(4) behandelt und alle folgenden Spalten in Varchar(4) convertiert, d.h. abschneidet. Versuch mal, alle Felder zu Varchar(255) zu convertieren und schau ob es dann schnuckelt.
Gruß