Precisamente eso es lo que te estoy diicendo. Si lees en el manual de referencia de MySQL (y de cualquier DBMS) verás que es condición
obligatoria que todas las consultas unidas con una cláusula UNION
deben devolver la misma cantidad de registros.
No es opcional. Si o sí.
Genera una columna falsa con un valor cero o uno para esa columna y listo.