el problema es que al salir raiz no toma el valor que le di adentro
probe metodos con punteros a int y si los modifica, no se porque sera porque antes ya lo habia hecho ( no me acuerdo como ).
Si te entiendo correctamente estas tratando de modificar el puntero al primer elemento (la variable 'raiz') de una lista dentro de tu funcion.
Si ese es el caso tienes dos opciones:
1) Pasar la direccion en memoria de 'raiz', esto es, cambiar el tipo del parametro a 'Nodo **raiz' y realizar indireccion dentro de tu funcion ya que si no lo haces estarias modificando la variable local.
2) Modificar tu funcion para que devuelva un valor de tipo 'Nodo *' (que seria el nuevo valor de 'raiz') y asignar este a la variable 'raiz'.
Un saludo