I don't have mySQL, but this should hopefully point you in the right direction:
Instead of the Seasons table in your query, using the following:
FROM
(
select * from seasons
union
select '' as [sname],'1/1/1980' as [sStart],DateAdd(dd,-1,MIN([sStart])) as [send]
from Seasons
union
select '' as [sname],DateAdd(dd,+1,MAX([send])) as [sstart],'12/31/2021' as [Send]
from Seasons
) Seasons
Basically, adding two "dummy rows" to represent seasons before the first date and after the last date...