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:http://php.net/manual/en /idioma.variables.scope.php