Setkal jsem se s tímto přesně stejným problémem a ztratil jsem téměř dva dny, když jsem se snažil na to přijít. Zdá se, že jde o chybu v mapování EntityFramework pro MySql.
Řešením je přesunout DateTime.UtcNow výpočet mimo rozsah lambda a vložte skutečnou hodnotu.
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);