Stai facendo un po di confusione.
Procediamo con ordine, in MySQL le operazioni funzionano così:

  • Inserimento:
    codice:
    INSERT INTO table_name (attrib1, attrib2, ..., attribN) VALUES ('value1', 'value2', ..., 'valueN');
    e questo "comando" ritorna fondamentalmente una stringa che da informazioni sugli inserimenti effettuati nel caso di inserimenti multipli.
  • Selezione:
    codice:
    SELECT attrib1, attrib2, ..., attribN FROM table_name WHERE condition ORDER BY attribX ASC/DESC
    che invece ritorna una risorsa nel formato di un array associativo o "numerico"


successivamente da un operazione di inserimento si può ottenere il numero di righe interessate nel caso di inserimenti multipli oppure l'ID dell'ultimo inserimento effettuato, mentre da un operazione di SELECT siccome si ottiene una risorsa bisogna scorrerla in qualche modo per leggerne i dati.

Premesso questo il problema del tuo algoritmo è che:
codice:
<? 
if ($pagina==1){ 
   $sql = "INSERT INTO b_centri (nome_centro) VALUES ('$nome_centro')"; 
   mysql_query($sql, $conn) or die ($sql); 

   $sql2 = "SELECT id_centri FROM b_centri ORDER BY id_centri DESC"; 
   $result2 = mysql_query($sql2,$conn); 
   $row = mysql_num_rows($result2); 
   header ("Location: inserimento2_serviziounghie_new.php?centro=id_centri&pagina=2"); 
} 
?>
oltre l'inserimento (errato dato che $nome_centro non è stata valorizzata da nessuna parte) non fa nient'altro.

La tua select semplicemente ritorna N righe (tuple) che corrispondono a tutti ID_CENTRI nella tabella B_CENTRI ordinati in ordine decrescente ma non ne "estrai" nessuno per poi utilizzarlo nella tua header("location: ...").

Un esempio corretto sarebbe:
codice:
<?PHP
   $conn = mysql_connect(...);
   mysql_db_select(...);

   if ( isset($_POST['pagina']) {
      $pagina = (int)$_POST['pagina'];
   } else {
      $pagina = 0;
   }

   if ( $pagina == 1 ) {
      $nome_centro = $_POST['nome_centro'];
      $query = "INSERT INTO b_centri(nome_centro)VALUES('$nome_centro');
      mysql_query($query, $conn) or die ("Errore query inserimento");

      $id_centro = mysql_insert_id(); // Ottiene l'ultimo ID inserito
      header ("Location: inserimento2_serviziounghie_new.php?centro=$id_centro&pagina=2"); 
   }
?>

<form enctype="multipart/form-data" name="form" action="<?=$PHP_SELF?>" method="post"> 
   <span class="testo_grigio_bold">nome centro </span> 
   <input type="text" name="nome_centro" size="18" maxlength="30"></td> 
   <input type="hidden" name="pagina" value="1"> 
   <input name="submit" type="submit" class="pulsante" value="inserisci"> 
</form>
Quando scrivi codice ricorda di:
1) Validare qualsiasi fonte di input esterno (GET, POST) perchè potrebbero essere modificati da utenti malevoli.
2) Valorizzare (e inizializzare) le variabili che utilizzi
3) Sarebbe bene anche usare sempre <?PHP invece di <?