How to differentiate between the result sets retrieved for multiple OR conditions?
Typically I recommend materialising your resultset when this scenario has come up. Since queries of this nature are usually pretty broad and analytical (read: non-performant), this approach has the benefit of


reducing editing requirements (do you want to add the line to both the select and where clauses for each evaluation?)
snapshotting the underlying data for debugging
capturing "missed" rows from the underlying data that you thought you should have captured


Avoid:

Select 
    if(col1 like '%text1%',TRUE,FALSE) as a,
    if(col1 like '%text2%',TRUE,FALSE) as b,
    col1 
from table 
where col1 like '%text1%' 
   or col1 like '%text2%'


Prefer:

create temporary table foo as (
    Select 
        if(col1 like '%text1%',TRUE,FALSE) as a,
        if(col1 like '%text2%',TRUE,FALSE) as b,
        col1 
    from table 
);

select * 
from foo
where a
   or b;


Play with a demo of this approach on dbfiddle