Come praticamente tutti gli altri motori SQL disponibili, le tabelle MySQL MyISAM non offrono alcuna garanzia sull'ordine in cui le righe vengono restituite a meno che non si specifichi una clausola ORDER BY. In genere l'ordine in cui vengono restituiti sarà l'ordine in cui sono stati letti dal filesystem, che può cambiare da una query all'altra a seconda degli aggiornamenti, delle eliminazioni e persino dello stato delle selezioni memorizzate nella cache.
Se vuoi evitare che la stessa riga venga restituita più di una volta, devi ordinare per qualcosa, la chiave primaria è il candidato più ovvio.