There's a strong argument for the red when you watch the replay and see Neymar looking at the Croatia player and then sticking his arm in the face.
I'm not really sure whether that was an intentional arm in the face or just Neymar protecting himself and accidentally catching him.
Definitely seen players walk for it, but seen plenty of others go with just a yellow as well. IMO a yellow is about right.
But considering this was Brazil, in Brazil in the WC opening match, it's Neymar, Brazil's most popular player. It would have taken an insanely strong ref to make a decision on a red in real time.
I think a Croatia player could have got away with a yellow for that challenge too. But the pen would have only been given for Brazil and virtually any other side would have been getting their player booked for that.