The difference has to do with circumstance. In the first sentence, a certain bus did not show up. There is only one bus.
In the second sentence, there isn't a single train in operation because the drivers are on strike. All trains won't be running that day.
You could say "there are no buses" if there was a city holiday or a strike and all of the buses weren't running and similarly you could say "there was no train" if a particular train didn't show up.
The two are not interchangeable and depend entirely on the circumstances.
Hope that helps!