Why is Pikachu wearing a Santa hat and what does it mean?
This is a special, limited edition Pikachu that Niantic released for the holidays.
Update
In a recent update, posted on 12/23/16, the Santa hat Pikachu will continue past the Holidays and will also be easier to find in the wild
Special Pikachu wearing festive hats will also be staying around a bit longer! You are more likely to find these limited-edition Pikachu during the time period of this celebration
Johto Holiday
We also have another special treat for you. Starting later today through December 29, 2016, 10:00 A.M. PST, you’ll find limited edition Pikachu all over the world. These Pikachu will be wearing a festive hat to celebrate the season!
iDigitalTimes also states you can obtain a holiday Raichu if you evolve this special Pikachu
If you evolve a Christmas Pikachu, you get a Christmas Raichu who is also wearing a Santa hat. It’s unclear if you can catch a Christmas Raichu but it seems highly likely.
Niantic states the this Pikachu is a limited edition Pokemon, which some suspect mean it will keep its hat after the event is over.
Starting later today through December 29, 2016, 10:00 A.M. PST, you’ll find limited edition Pikachu all over the world. These Pikachu will be wearing a festive hat to celebrate the season!
(Source)
In addition, evolving the Pikachu with the Santa hat turns it into a Raichu with a hat:
(Source)
The same source for the picture also states:
Niantic refers to Christmas Pikachu as a "limited edition" Pokémon, which does suggest that you keep these forever. How else would you demonstrate that you participated in the event?
The only thing one can do is wait until December 29th to see if its still in the game. Niantic does not state that the hat has any other effects on the Pokemon.