Ni te va a andar jamás de esa forma...
El problema es simplísimo visto así: Cada SELECT devuelve una cantidad diferente de campos, algo que
es total y absolutamente ilegal.
Ambos deben tener la misma cantidad, y para ello en el primer SELECT debes agregar una columna ficticia (totalmente ficticia) que corresponda con la posición y tipo de datos del segundo SELECT:
La consulta que usas debe estar devolviendo un error, sólo que sin duda no lo estás capturando, por lo que ni ten enteras de eso.
Pero eso es tema de programación, y por consecuencia OFF TOPIC acá.