Indeed, in some places things get really odd because there are several different "types" of graduate student, and unions don't necessarily manage to negotiate equally advantageous contracts for all of them.
This is correct. At Berkeley the GSIs are unionized at the GSRs are not. As recently as two years ago they tried to organise the GSRs and as far as I know it was voted down. GSRships tend to skew towards STEM and there seems to be little interest among the GSRs themselves in worker protections. Most of them arrive knowing they're there to work their asses off for little pay in return for a better life down the road. It's a very different mentality than in the humanities.
It's not the mentality per se; the conditions are very different in humanities versus STEM.
For humanities students, the department or division makes a lot of decisions that affect grad students, including the assignment of TA and RA positions, providing funding for conferences and other travel (e.g., to archives). Issues like fairly distributing TAships and keeping class sizes reasonable are things that a union could address. Their advisors were literally....advisors; some of my friends met with their advisor monthly or even less and their research was usually related to--but not an integral part of--their advisors' work.
In contrast, science PhD students (especially in biomedical fields) usually work for ONE professor and their work is usually a piece of that prof's overarching research plan. The prof (through grants) usually provides funds for salaries and research-related expenses, rather than the department. The department has very little effect on their lives; bad interactions with their advisor are the main source of misery. It's less clear to me how unions could solve this. They could prevent students from being dismissed for not working insane hours, but they can't force advisors to actually help students do and publish experiments, write them useful letters of recommendation, or things like that.