It looks like you still have code nodes in your model that are toggled as C++. If you toggle those back to Flexscript, you'll stop getting "It is recommended that you Compile First." message when you run the model.
When an item enters Queue2, the pull requirement fires on Queue1, but it only checks the new item. Once an item is pulled, Queue 1 receives the item and then attempts to pull again. This time it starts at the first item and checks each one in Queue2 to find another matching item. Except that Queue 1 only has a max content of 1, so the second set of pulls does not happen.
You can solve this by telling the queue to reevaluate its pull requirement when variable1 is set.In Combiner2's On Entry trigger, change the code to:
if (variable2 != 1) {
variable1 = value;
current.inObjects[2].input.close();
current.inObjects[2].input.open();
}
The process of closing and opening the ports of Queue1 will cause the pull requirement to be fired for every item in Queue2. You'll notice right as the first green item is moved into the combiner, Queue1 immediately pulls the red item that was the first one to arrive in Queue2.