La respuesta es mas de base de datos que de PHP como tal, el problema esta en como colocaste el LIMIT, ya que el LIMIT 0,1 estas diciendo que te devuelva los dos primeros valores del arreglo que recibe este, con solo colocar LIMIT 1, ahí estarías indicandole a MySQL que solo quieres un registro, usar o no el WHILE no deberia de afectar ya que si solo trae uno se va a quedar en uno,