Вы не можете группировать по сложным ключам (кроме одного значения узла) только с выражением XPath 1.0.
Вы можете сгруппировать по одному ключу, а затем по другому, итерируя с вашим основным языком по этому результату выражения XPath:
/*/data[not(col1 = ../preceding-sibling::data/col1)]
И после регистрации переменной $col1
(или замены ее значения в выражении) на col1
используйте это:
/*/data[col1 = $col1][not(col2 = ../preceding-sibling::data[col1 = $col1]/col2)]