"Who is in the same class?"
I think you should consider "the same class" in this sentence to be a group like "Japanese", so just as you wouldn't say "Who is in the Japanese?" you don't need to say "in the same class". This particular example would sound strange translated literally to English, but there are other times this sort of phrasing is used, e.g.: Red team versus blue team. "Who's red team? Who's blue team?"
Not quite. "There" has 2 different meanings in English that we never think about. One meaning is "to exist." The other is similar but is directional. For example, "There are bears there." Or, "Bears exist over there." "います" is more like "There is/are." "そこに/で" is directional. "います" is not used in the same way we English speakers use "exists" but as in we use the way "there is/are".