La función listar() jamás devuelve un resultado, y es necesario devolver un resultado para que pueda ser utilizado de manera externa:
Código PHP:
function listar($res) {
return mysql_fetch_array($res);
}
// ...
while ($fila = listar($res)) // ...
Por favor lee lo siguiente:
http://www.php.net/manual/es/functions.user-defined.php