Bueno, en tu primer archivo has declarado un global variable global $conn; No sé exactamente por qué, pero de todos modos eso funcionaría sin ningún problema porque $conn tiene un alcance global.
Pero en su segundo caso cuando declara su global variable dentro de una función, la función buscaría $conn que está en el ámbito global en lugar de la variable local $conn que aparentemente tiene el identificador de conexión.
elimine el global $conn de su función y debería funcionar.
más información sobre ámbitos variables:https://php.net/manual/en /idioma.variables.scope.php