Si, e' normale.
Nello standard SQL una query del genere sarebbe illegale.
Tra l'altro, il tuo risultato non rispecchia la tua query, avrai sbagliato qualcosa con copia/incolla.
Comunque, puoi fare cosi:
codice:
select id1,campo1, numero min from z_prova where numero in (select min(numero) from z_prova group by id1)
o se proprio vuoi divertirti con le estensioni non standard di mysql:
codice:
select id1,substring_index(group_concat(campo1 order by numero asc),',',1) campo1,min(numero) min from z_prova group by id1