Order group by EndDate
in ascending order and select first item from group - that will be item with min date. Then use this item in select statement
var query = from MPayItem in MPay
where mpItem.EndDate > System.DateTime.Now.Date
group mpItem by mpItem.IdGroup into mpItemGrouped
let minItem = mpItemGrouped.OrderBy(p => p.EndDate).First()
select new
{
Id = mpItemGrouped.Key,
EndDate = minItem.EndDate,
Name = minItem.IdGroupModel.GroupName,
Price = minItem.PaySumIndividual
};