Диего прав, группа по продукту есть группа по Product.Id. Если вы группируете по Product.Price, вы не пропустите ни одного продукта, потому что вы также сгруппировали его по Product.Id.
Вы можете сделать это, но не забывайте, что у вас есть только Product.Id и Product.Price:
var data = session.QueryOver<Product>()
.JoinAlias(qp => qp.FieldValues, () => qfv)
.SelectList(list => list
.SelectGroup(product => product.Id)
.SelectGroup(product => product.Price))
.OrderBy(product => product.Price).Asc
.List<object[]>();
Или вы можете сделать это без какой-либо группы: (Если вы хотите отсортировать только по продукту. Цена)
var data = session.QueryOver<Product>()
.JoinAlias(qp => qp.FieldValues, () => qfv)
.OrderBy(product => product.Price).Asc
.List<Product>();