Olá Leandro, tudo bem ?
Na situação da aula citada o X representa apenas uma variável qualquer, poderia ser Y , Z , BANANA. Essa variável é responsável por realizar a interação dentro do loop for.
No caso, temos:
#Dados dos estudantes
nomes = [('João', 'J720'), ('Maria', 'M205'), ('José', 'J371'), ('Cláudia', 'C546'), ('Ana', 'A347')]
notas = [[8.0, 9.0, 10.0], [9.0, 7.0, 6.0], [3.4, 7.0, 7.0], [5.5, 6.6, 8.0], [6.0, 10.0, 9.5]]
medias = [9.0, 7.3, 5.8, 6.7, 8.5]
#Situação do estudante
situacao = ['Aprovado(a)' if media >= 6 else 'Reprovado(a)' for media in medias]
cadastro = [x for x in [nomes, notas, medias, situacao]]
Esse cadastro também poderia de outra maneira, e o resultado será o mesmo:
cadastro = [dado_estudante for dado_estudante in [nomes, notas, medias, situacao]]