Ik kwam exact hetzelfde probleem tegen en verloor bijna twee dagen om erachter te komen. Het lijkt een fout te zijn in de EntityFramework-toewijzingen voor MySql.
De oplossing is om de DateTime.UtcNow . te verplaatsen berekening buiten de scoped lambda en vul de werkelijke waarde in.
var utcNow = DateTime.UtcNow;
query = query.Where(p => p.Published);
query = query.Where(p => !p.StartDate.HasValue || p.StartDate <= utcNow);
query = query.Where(p => !p.EndDate.HasValue || p.EndDate >= utcNow);