My mum has my eldest to stay for sleepovers and they're going on holiday this year for a few days, he's 9.
She does not have my 5 year old to stay over.
She WILL when my 5 year old is older.
She simply struggles with younger children, acknowledges it, adores both children. My youngest has no issue with this, he gets day trips with his Granny.
Sometimes it's not about favouritism but what you can cope with.
I think what's missing in the OP's case is a good relationship with honest communication, it may be your DS's age "Churmy" (my Dad just stared blankly at my children until they reached an age he could relate to - very close with both now!) it could even be gender (I do agree there needs to be a resolution if this is the reason, a way of balancing affection, or showing it).
Saying all that YANBU. I suppose only time/age will tell if the relationship gets better, I think you need to try to build a better relationship with your MIL (or rather, open more lines of communication) where you can voice your concerns, discuss your MIL's feelings and try and put something in place so that your DS doesn't feel left out when he's older.