LINQ .Where doesn't return null, it returns an empty enumerable, so your result is always true.
Code:
Hud.Game.Me.Powers.UsedSkills.Any(x => x.SnoPower == Hud.Sno.SnoPowers.Necromancer_SkeletalMage) //returns true/false
Hud.Game.Me.Powers.UsedSkills.FirstOrDefault(x => x.SnoPower == Hud.Sno.SnoPowers.Necromancer_SkeletalMage) //returns skill or null
Hud.Game.Me.Powers.UsedSkills.FirstOrDefault(x => x.SnoPower == Hud.Sno.SnoPowers.Necromancer_SkeletalMage) != null //this is another option for true/false
Hud.Game.Me.Powers.GetUsedSkill(Hud.Sno.SnoPowers.Necromancer_SkeletalMage) //returns skill or null? I just found out about this function so haven't tested it