私はこれとまったく同じ問題に遭遇し、それを理解しようとしてほぼ2日を失いました。 MySqlのEntityFrameworkマッピングのバグのようです。
解決策は、 DateTime.UtcNowを移動することです。 スコープラムダの外で計算し、実際の値をプラグインします。
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);