Just like when you use brackets in mathematical formulae, you need to be careful that you group the correct conditions together. ID 10 is included because you’ve got a general “or active is null” condition, which is fulfilled by that row.
I’d imagine you should probably have better control of the data going into the table too - I can foresee trouble if you allow a column to be NULL or a blank string. If there’s nothing to store in it, surely it would be better to always be one or the other? Wouldn’t “unsubscribed” be easier to deal with if it was always either “Y” or “N”, or that’s just another way of using a Boolean “true” or “false”? Same for “active” - it’s always going to be active or not active, so true or false would suffice.