He had a sponsored snow leopard as part of his Christmas gift and when he opened it his face lit up and he said 'this is a good gift because it's helping someone else not just me.'
This is just lovely of him. Really sweet, thoughtful and altruistic.
I won't try and advise you on ASD, as it's not something I have experience/knowledge of, and there are others here with good advice for you.
What I will stress, though, is how hurtful and damaging your MIL's attitude to him will be. Having been cast aside for a newer, shinier, more exciting sibling is something that could affect him for the rest of his life, if you are not careful. It sounds like you are aware of this.
What I would do is raise this very directly with MIL, giving concrete examples of the offending behaviour, explaining to her how hurtful and damaging it is for him (you may need to do this in the way you would try to teach your DS empathy, by the sound of it: 'imagine how you would feel, if...'), and then finish by saying you really value MIL's relationship with your DC but you are afraid you won't be able to have her round while she is intent on playing favourites.
Obviously this will not go down well with her. No doubt you will get tears/an explosion from her. She may even genuinely not realise what she is doing. But you need to stand firm on boundaries, and what treatment you will tolerate, for the sake of both DC (the golden child role will not do your DD any favours either. Assuming this lasts once she can display her own personality and answer back).