Of course the costs of congestion pricing would fall hard on people of modest means, but that's because the cost of anything falls hard on people of modest means. But the whole crux of the argument for congestion pricing is that "free" roads come with real costs. They cost money to build (as would priced roads) but on top of that, they impose huge costs in terms of traffic and delays. That cost, is borne by everyone but, again, people of modest means tend to pay the most since in search of affordable housing they're pushed the furthest out onto the metropolitan fringe.You'll see the same objection raised in other areas as well, notably from social justice environmentalists who, for example, oppose cap-and-trade schemes because they hurt the poor (or, alternately, don't do enough to actively help the poor). It's a perfectly justifiable concern, but when you focus too much on it you end up being paralyzed. You can't do anything that carries an immediate cost, no matter how worthy the cause, because the cost will, inevitably, hurt the poor more than it hurts the rich.
Far better, I think, to support things like gas taxes and congestion pricing but insist that some or all of the revenue be earmarked to ameliorate the impact on low-income users. London's congestion charge, for example, which despite its problems has been more successful than I imagined it would be, is primarily used to fund public transport. Other, more direct subsidies are also imaginable. The social justice folks typically seem to think that such suggestions are little more than an abject sellout because they don't address the problems of the poor vigorously enough, but that's letting the perfect be the enemy of the good. Politics is all about building real-world alliances to get what you want, and this is no different. There's no free lunch.