With your current rule in place you would need to ensure that you have that session variable set as well to make the charge.
What I was referring to with the calculated column is that you have a new calculated column created in the calculations tab of your cart.
If the name of your column that holds the 1 or 0 for shipping is called shippable items then the calculation would look like this:
name: totalshipping
abs([shippable items] == 1) * ([Price] * [Quantity])
Then in your shipping charge rule you would just use the subtotal of this new calculated column to base your shipping charge rules on and not the subtotal of the entire cart. This will make you shipping charge rule based only on the items that have a 1 for the shippable items column.