Bene, nel tuo primo file hai dichiarato un global
variabile global $conn;
Non so esattamente perché, ma comunque funzionerebbe senza alcun problema perché $conn è in ambito globale.
Ma nel tuo secondo caso quando dichiari il tuo global
variabile all'interno di una funzione, la funzione cercherà $conn
che è in ambito globale invece della variabile locale $conn
che apparentemente ha l'handle di connessione.
rimuovi il global $conn
dalla tua funzione e dovrebbe funzionare.
maggiori informazioni sugli ambiti delle variabili - http://php.net/manual/en /variabili.lingua.scope.php