Select multiple columns in IF clause conditionally? Is it possible to select different fields inside a SELECT conditionally?

Pseudocode:

CREATE VIE myview AS SELECT
  id,
  IF(signal_field == 1)
     firstname as first,
     lastname as last
  ELSE
     concat(firstname + lastname) as firstlast
  FROM mytable;
SELECT
  id,(CASE WHEN signal_field =1 THEN firstname END) as first,
     (CASE WHEN signal_field =1 THEN lastname  END) lastname as last,
     (CASE WHEN signal_field!=1 THEN concat(firstname,lastname) END) as firstlast
FROM mytable;