Problem resolved with (help of) a support session
The easiest way to achieve this is to leave the pre select query alone and change the recordset which populates the check boxes,
so that instead of returning just the rows from the reference table, you first filter the rows which have a price (by productid), then create a nested query with a left join, so you return all the rows with the colourid AND all of the related prices, for a particular product.
then you set the value of your price field from the recordset
SELECT refcolour.ColourID, refcolour.ColourDescription, rspriced.Price FROM refColour LEFT JOIN ((SELECT ColourID, Price FROM tblproductcolour WHERE ProductID = %s) as rspriced) ON refcolour.ColourID = rspriced.ColourID