Jeg stødte på præcis det samme problem og mistede næsten to dage på at prøve at finde ud af det. Det ser ud til at være en fejl i EntityFramework-tilknytningerne til MySql.
Løsningen er at flytte DateTime.UtcNow beregning uden for scoped lambda og tilslut den faktiske værdi.
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);