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 - https://php.net/manual/en /variabili.lingua.scope.php