It is because the kid is a kid. Service employees judge every single customer as to how much tip they think they can get out of them no matter if they are waiting tables at a restaurant or putting down beds in a sleeping car. Younger folks typically don't tip good or tip at all so they are neglected frequently. It is just how the tipping system works.
No offense, but that's not how the tipping system works. The tipping system works thusly: The employee provides service. If the service is good, I tip him/her. If it's excellent, I tip him/her more, and I tell him/her how pleased I am. If the service is bad, I don't tip. If it's non-existent, I report it. I never leave the gratuitous penny or nickle; that's in poor taste, as Miss manners would say.
My point is, service providers doesn't control the tipping system, but they can definitely affect the results. The good ones know that.
The kid was probably too nice to make a fuss, but he might have benefited by seeking out some Amtrak official on the train and asking what service he was entitled to as a sleeper passenger. And, after receiving the $10 or $20, the employee might have thought twice about ignoring young passengers the next time.
Now, just to be fair, it's possible that the train was understaffed and the attendant was holding down two cars and maybe the other car was full of nanogenerians who needed a lot of attention. But even so, (s)he should have sought out the kid and explained the situation.