Simple: don't project the group before returning it.
(You are currently only selecting the group's key, which doesn't match your return type.)
public IEnumerable<IGrouping<String,Product>> GetProducts4()
{
return from p in _context.Products
group p by p.Name into g
select g;
}