What is the best design for storing courses subscription data?
Both are OK designs, so now the problem is deciding between the two.  Here are some things that I think you should consider as you decide which one is best.


How similar are the non-essential columns in the Course Subscription and Lesson Subscription tables?  If they are very similar then records which contain only a course subscription in the Subscriptions table would not have a bunch of null columns to skip which apply only to lesson subscriptions and vice versa.  The more similar the columns are, the more you should lean towards using the Subscriptions design.
Can a student subscribe to both a course and a lesson at the same time? If the student does that, will the data for any shared columns between a course and lesson be different?  If the data is different, then you'll definitely need the CourseSubscriptions and LessonSubscriptions tables.  Otherwise, you should be fine with just a Subscriptions table.


Finally, if you go with one table... Think through how your output would handle a combined course and lesson subscription.  Is that two subscriptions or one?  Conversely, if you go with two tables and one action results in two entries, is that one or two?