Here are two reasons (one is supposedly real and the other is personal assumption)
a) Like what almost everybody else said, Clefairy was intended to be mascot, but Pikachu was chosen instead due to popularity or something.
b) Think about it, they had to choose from the original 151 at the beginning of Pokemon. Admit it, Pokemon has always been more catered towards audience. And that rules out a lot of stuff that they can use since little children like cute stuff, such as Voltorb/Electrode (which wouldn't make the best mascot anyways) or Magmar. Another thing that held them back from using starters was the heat from other starter fan... So I guess that's why they didn't use starters. After two eliminations, you are left with a bunch of other stuff that can be too girly like Jigglypuff or Clefairy. Some were, I guess, shafted because they're less marketable, like Geodude. So that leaves you with very little choice. I guess they could've gone with Eevee, but it made sense since they gave Eevee a centric role in Yellow.
Like I said, a bunch of points in B are just assumptions, so don't take it too seriously xD