KEKIs
results = sorted(results, key=lambda x: sum([k[1] for k in results if k[0] == x[0]]), reverse=True)
А что будет, если там будет миллион оценок с идентификатором 0 ? Он для этого миллиона оценок будет миллион раз вычислять одну и ту же сумму? Надо переделать это.
Сначала надо получить пары.
Затем сортировка всех пар должна пройти по первой колонке.
Затем по первой колонке нужно получить пары (идентификатор, список значений).
Затем сортировка полученных пар должна пройти по суммам из списков значений.
Затем полученные пары должны быть выведены.
А если наскоряк пытаешься сделать в три строчки, то в итоге несколько раз переписываешь код и в конце всё равно приходишь к результату, который и нужно было сделать изначально.
KEKIs
В дебагере не отражается процесс сортировки
Если тебе понадобился дебаггер, значит ты делаешь что-то не то. В данном случае ты пытаешься неправильный код в три строчки натянуть на тесты. Это неправильный подход. Надо правильно писать программы. А правильная программа - это программа, в которой правильный код. Или ты думаешь, что программы пишутся для того, чтобы тесты проходить какие-то? Программы пишутся для того, чтобы работать потом годами. А работать они должны правильно и надёжно.