You can do this with a simple case expression:
select case
when col_a like 'good%' then col_a
when col_b like 'good%' then col_b
when col_c like 'good%' then col_c
end result
from table
This will evaluate in order, so order the columns in the case statement in whatever order you wish to check.
--EDIT--
To remove the rows with no results, we have a few options:
Move this into a subquery (or CTE) with a where clause
select *
from
(
select case
when col_a like 'good%' then col_a
when col_b like 'good%' then col_b
when col_c like 'good%' then col_c
end result
from table
) a
where a.result is not null
Check all of them in your where clause
select case
when col_a like 'good%' then col_a
when col_b like 'good%' then col_b
when col_c like 'good%' then col_c
end result
from table
where col_a like 'good%'
or col_b like 'good%'
or col_c like 'good%'