In the query similar to this:
SELECT
COLUMN1,
CASE WHEN 1=2 THEN
COLUMN2
END AS "COLUMN2"
FROM
TABLE1
…it appears to always return COLUMN2 in the dataset with NULL values in it. I’d like to avoid that. Basically, in certain conditions one of the columns I am selecting is not applicable, therefore I don’t want to select it at all. I know how to “hide” it in code, but I would like to achieve this in the database procedure if at all possible without overcomplicating the query.
That is not possible. A query has to have a fixed set of columns that it returns (drawing from a known set of tables). That part is not dynamic, it needs to be known at “compile-time”.
You need to remove the column in your application (or have multiple queries, potentially generated dynamically in client code).