I know that even if I hate hats, I still earn them, but does that mean others can see hats I've earned if they go to my profile page? Or does hating hats hide hat hyperlinks?
For all intents and purposes, when you hate hats, you don't have any. So the answer is indeed, no, they can't see them.
For a more detailed answer: The question "Does user X participate in Winter Bash" is made per-site (although in practice all sites except possibly Stack Overflow will have the same decision). A site can have one of three Hat settings:
The site has completely opted out of Winter Bash. There is no snowflake menu, and no way to have hats appear on the site. These are the second and third bullet in this answer.
The site has hats, but they're off by default. The only such site this year is Stack Overflow.
The site has hats, and they're on by default.
And a user can also have one of three Hat settings:
Explicitly declared love for hats. The simplest way to do that is to just put on a hat.
Explicitly declared hate for hats.
The default, no explicit preference.
A 1) user has hats everywhere where hats can be had. A 2) user doesn't have hats anywhere. A 3) user has hats on 3) sites (in other words, everywhere but Stack Overflow).
If by that logic a user doesn't participate on a particular site, then behind the scenes we still record what hats they deserve, but these are not surfaced in any way. In particular, on the given site
- the user doesn't see people wearing hats
- the user doesn't wear a hat
- the user doesn't have hats in their profile on that site
- the user doesn't appear in that site's leaderboard
- the user's (deserved) hats do not count towards the site's Leaderboard position
The last point is also the reason that despite its size, Stack Overflow seems to have fairly few hats in the leaderboard at the moment. Right now, SO is listed as having exactly 3000 hats, but in fact there are 16183 hats in the database. Most of these just don't count as existing until the owner has opted in.
Hats aren't automatically deployed, so even if you've earned them, you still have to choose to wear one. If you haven't done that, you won't show up with hats even for people who don't hate hats.
And if you hate hats, you won't see the option to wear one.
As for whether other people can see them via your profile even if you aren't wearing any, it appears not. Here is what I see for your profile on MSE:
For comparison, here is what I see for someone who isn't so hateful: