How to use OR operator in CASE THEN statement
Assuming two booleanexp1s is a misprint:

select col1, col2
from table1
where ((booleanexp1) AND (col1 IN (a, b)))
   or ((booleanexp2) AND (col1 IN (c, d)))


PS. not (booleanexp1) is one possible option of (booleanexp2)...