Tenía la idea de hacer la consulta con
LEFT JOIN
para así traer a las materias existentes y a las que fueron previamente guardadas y ya en la impresión de datos, hubiera tenido que realizar una condición en la cual evaluaría el valor de la variable correspondiente a la materia guardada y en caso de estar, se marcaba el checkbox, pero haciendo la evaluación en la consulta, es más eficiente. De hecho, eso equivaldría a lo que quería hacer, solo que lo hiciste en MySQL.
Interesante estructura de la condición, como cuando se usan operadores ternarios.