Is it possible to show the complete products list, but indicate which products are already in the cart? What's the conditional?
This StackExchange question explains how to set an array of IDs for items in your cart, and then compare those IDs against the IDs of a list of products: Check if cart contains valid products for discount code