Tôi gặp phải vấn đề tương tự chính xác này và mất gần hai ngày cố gắng tìm ra nó. Có vẻ như đó là một lỗi trong ánh xạ EntityFramework cho MySql.
Giải pháp là di chuyển DateTime.UtcNow tính toán bên ngoài lambda phạm vi và cắm vào giá trị thực.
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);