Vedendo il codice tutto sembra andare bene, però... siccome la pratica è il criterio che da valore alla verità, ho creato le stesse tabelle ed ho testato il codice ed ha funzionato senza problemi, ho addirittura testato la tua query nel MySQL Query Browser ottenendo lo stesso risultato dello script. Comunque prova in un altro modo, ad esempio così:

Codice PHP:
/* $righe = mysql_num_rows($rqControlloCategoriaVuota); //recupero il numero di righe restituite 0 (non è presente nessun elemento in quella categoria) */
$getResult mysql_fetch_array($rqControlloCategoriaVuota,MYSQL_ASSOC) ;
mysql_free_result($rqControlloCategoriaVuota);                 
//if ($righe!=0){
if (!empty($getResult)) {                   
    unset(
$_POST[$i]);     //listruzione che serve sucessivamente per creare la query di salvataggio in dinamico                
    
echo('
Impossibile cancellare '
.$_POST["Categoria".$i].'. La categoria non è vuota, eliminare prima gli elementi
'
);