SELECT first_name,last_name,school,contest FROM table
WHERE contest IN ('blah','mah','wah')
GROUP BY first_name, last_name, school
HAVING COUNT(DISTINCT contest)>1
Edit
SELECT * FROM table t JOIN
(SELECT GROUP_CONCAT(id)as ids,first_name,last_name,school,contest FROM table
WHERE contest IN (1001,1002,1003)
GROUP BY first_name, last_name, school
HAVING COUNT(DISTINCT contest)>1)x
ON FIND_IN_SET(t.id,x.ids)>0