Alternative solution to keep it quite simple could be to change the method signature to switch parameters:
HistoryProcessInstanceQuery processInstanceId(QueryOperand operand, String... processInstanceId);
such a change will make it more intuitive if it comes to list base operands (in, not it) but will not require too much of work and changes in the API. In addition based on such method signature we could validate if parameters are in correct format.
Introducing hibernate criteria could be too big step, in my opinion especially when there is jBPM5 on the way.
What do you think about it?