What is the meaning of the changed name of grad_fn?

The grad_fn just tells you which op created this Tensor. In this case a concatenation

Does it mean that the gradient has been overwritten?

No, just that this concatenation op is taken into account when gradients will be computed (even if it is a no-op here because the other Tensor is a numpy array).

If we want to backpropagate just through u (even though input is u and y) is it possible?

If y does not require gradients (which it cannot if it is a numpy array), then the autograd will automatically ignore it when running backprop.