fetchAll restituisce un array vuoto qualora l'esecuzione della query non produca risultati.
Quindi il controllo che fai non va bene.

O conti gli elementi dell'array oppure fai una query del tipo

codice:
$controllo = $db->prepare("SELECT count(email) as num FROM utente WHERE email = '$email'");
e da li il resto....