Alternative to ORDER BY GROUP BY to get first matches per ForeignKey
In MariaDB, you can use a window (ranking) function like ROW_NUMBER() or RANK():

with di as
  ( select *,  
           rank() over (partition by ProductModelID
                        order by Price)
             as rnk
    from DomainProductPrice as d
    where DomainID = 1
  )
select *
from di
where rnk = 1 ; 


Tested at dbfiddle.uk