Gracias! con lo que me dijiste de utilizar NOT IN, NOT EXISTS o LEFT JOIN investigue un poco mas. y encontré la solución:
SELECT courses.id, courses.nombre FROM courses WHERE id NOT IN (SELECT course_id FROM courses_users WHERE user_id ='id_estudiante')
La cuestión era encontrar las asignaturas que NO cursa un estudiante, para mostrarlas al estudiante y que el pudiera inscribirlas.
en este caso "courses" es la tabla donde esta la información de las asignaturas (nombre, id, descripción...) y courses_users es la tabla donde están las asignaturas inscritas por los estudiantes (id del estudiante, id de la asignatura que tiene inscrita el estudiante)