Implementing EXCEPT functionality for social networking exercise
Formatting
Using indentation and line breaks would make your code easier to read. There is no real &quot;standard&quot; so go with what you feel is clearest. I usually go with something that resembles C indentation a bit. Others use a more Java-like indentation. Doesn't matter, as long as it makes it more readable.
SELECT     
    H1.name, 
    H1.grade, 
    H2.name, 
    H2.grade
FROM 
(
    SELECT * 
    FROM Likes L1
    WHERE L1.ID2 NOT IN 
    (
        SELECT L2.ID1 
        FROM Likes L2
    )
) F 
INNER JOIN Highschooler H1 
    ON F.ID1 = H1.ID 
INNER JOIN Highschooler H2 
    ON F.ID2 = H2.ID; 


F and other aliases
It's good practice for aliases to get meaningful names. Making the code shorter is all well and good, and in your case doing a self-JOIN they are necessary; but, your subquery being aliased as F doesn't say much about what it represents.

MySQL limitations
There are several things you could do in other RDBMS that MySQL doesn't allow. You could have made a Common Table Expression, declared a Table Variable, and even used EXCEPT; except, none of those are supported by MySQL. I'm afraid, given the tool, this is about as good as it will get. Perhaps someone else will know of a better way. Only other thing I could think of is using a temp table, but that's totally overkill for something simple like this.