Neither of your sentences is correct in such a situation because you have changed the topic / focus saying "What about ...?" and also because you are using 합쇼체 while talking about the listeners and others (not about yourself). In addition, 먹습니까 indicates the present or future tense, whereas ate shows the past. For the first reason, you need to use 는; for the second, you have to use a honorific verb as well unless you are thinking about some special cases. In general, you should say "김치는 누가 드셨습니까?". Since the only topic / focus comes at the beginning of a clause, a simple sentence "누가 김치는 드셨습니까?" sounds too awkward; I would say this is incorrect. When you say ...는 누가 드셨습니까, the listener(s) may also understand it as "Who lifted ...?" because 들다 means to eat (as an honorific), to lift (up), etc. Another honorific for 먹다 is 잡수다, which is more directly relevant to the meaning of 먹다; however, people around me rarely use it these days as this also suggests. What is worse, some of them do not use honorific verbs when they should do.
Regarding "some special cases," I will mention a few things. There are situations when honorific verbs and even -시- are not used; then, "김치는 누가 먹었습니까?" sounds right. Absol already mentioned a case with an example in the comment section: when someone higher than the listener(s) says something with formality to the listener(s). Other cases are when an exam question is given to unspecified people and when the speaker shows that she/he thinks/knows that the answer is the speaker (which is talking about "yourself") or someone who is not higher than the speaker. There must be other cases, but you will find them as you learn more. It is normal to use the verb 먹다 without -시- in these cases.
Either of your sentences is used as a rhetorical question with 누가 emphasized: "Who eats kimchi?" ("No one eats kimchi"). The word order is not so important because 누가 and 김치를 has markers that indicate parts of speech. "누가 먹습니까, 김치를?" is also correct because you can still emphasize 누가, but "먹습니까, 누가 김치를?" sounds awkward because the emphasis is not placed on 누가. To make such a general statement using a rhetorical question, you must not use a honorific verb unless you are talking about your seniors and superiors only.