You are partially correct, Felipe.
Take a pretty good case study: Canada vs the US. In both cases, the unions pushed for pensions and healthcare, but the difference was that the unions in the US did exactly what you said: they refused to form any kind of united front, but rather just fought for their own respective members. So for the most of the 20th century, the best way to get (relatively) affordable healthcare was to join UAW or USW. This has been a godsend to US big business, because they were slowly able to chip away at the various collective bargaining agreements, leaving the current disaster there. Meanwhile, in Canada, the unions joined forces and pushed for healthcare for all. And while it is only a mildly socialistic programme when compared to other countries, there is no comparison in terms of costs/results. The Canadian system is far more efficient than the USs.
So you are right, just having unions is not enough; there must be worker solidarity amongst unions.
Unions are by no means perfect, but they are better than the alternative. The most important labour advances in every industrialised country: safety regulations, paid time off, living wage standards, maternity leave, child labour laws... all of them are the result of collective bargaining. In the US, union membership has vastly decreased over the last 40 years due to a concerted effort to attack unions, and the result has been that the wages of most people barely keep up with inflation, jobs are increasingly more precarious, there is a horrendous growing gap between the haves and the have-nots, an utterly ridiculous private healthcare system, etc, etc.
If you take out worker solidarity, the only voice that will have power will be that of the 1%. And they already have enough power as is.