That's because you didn't initialize the pointer to NULL; pointer's default state in the beginning of its life is not NULLIFYed but undefined. It's even illegal to query ASSOCIATED() on undefined pointer (i.e. results are unpredictable, as you experienced).
The easiest workaround is to put F95 default-initialization into type-declaration:
TYPE :: node DOUBLE PRECISION :: xmin,ymin,zmin DOUBLE PRECISION :: xmax,ymax,zmax TYPE(node), POINTER :: before =>NULL() TYPE(node), POINTER :: next =>NULL() INTEGER, DIMENSION(:), POINTER :: elein =>NULL() END TYPE