How to model a database structure for exam dates and date ranges?
I think I would approach this as the exam-dates table wouldn't have an entry for category 4, since it is an open-ended exam.

Perhaps, if you need to know when student A took an exam under category 4, then add a column for the date taken along with the student and student's grade?

So you could have 


an Exam table that lists out the exams and other data like course id, etc.
an ExamDates table that lists when exams are scheduled (and possibly other  values like building, room number, etc.)
a Students table with all of your student data.
a StudentExams table that links exams to students, (and through exams back to courses). This would have a student ID, an Exam ID, a date the test was completed, and a grade.


and probably some other tables like


a Courses table with data about the course
a StudentCourses table linking student to course
and so on...