Mega evolutions, as implemented, were/are not a great mechanic. Just because they're better than z moves and dmax doesn't automatically mean they're good.
Just broken megas: Gengar, Salamence, Mawile (at time of release), Kangaskhan, Lucario, Blastoise (assuming it returns bc Shell Smash), Rayquaza
Steroid megas for already-good mons: Alakazam, Blaziken, Garchomp, Latias/Latios, Salamence, Scizor, Slowbro, Tyranitar, Mega Mewtwo Y
Sorely missing help to realize potential: Absol, Houndoom, Sceptile, Mega Mewtwo X
Just not very good competitively: Abomasnow, Audino, Steelix, Camerupt
Specifics: Gallade (very static. same design, same type, null ability), Manectric (just ugly), Sableye (not fun!), Lopunny (normal fighting scrappy is not subtle + arbitrary lack of archetype continuity)
This leaves 19/48 megas I would call "good" or "great":
Good: Altaria, Ampharos, Banette, Beedrill, Charizard X, Charizard Y, Diancie, Gyarados, Medicham, Metagross, Pidgeot, Swampert
Great: Aerodactyl, Aggron, Gardevoir, Glalie, Pinsir, Sharpedo, Venusaur
I was generous for some of these. Both Charizards are obvious pandering, Diancie is more like a forme than a mega, Swampert is ugly and has lopunny's problem of arbitrary non-continuity, Metagross is on the very edge of broken, Altaria is more of a Fairy type than either a Dragon or Flying type so that's awkward. And still barely 1/3 made the cut to what I would even call "good".