Your subquery is returning the commission * 2 for every record in the employee table. It should only return a single record, not all of them. You don't appear to have a primary key stated anywhere, so you really can't use a subquery.
But, why are you even doing a subquery? Your case statement doesn't really make any sense. If commission * 2 is greater than 0 go do a select? Why? Your entire query should only be this:
SELECT first_name, salary, commission * 2 AS commission FROM employees
Of course, that means every commission of zero would return a 0, not "nocommission". A column should ever only return a single data type, not a numeric value for one record and a char value for another.
Of course, you could.
SELECT first_name, salary,
CASE
WHEN commission > 0 THEN commission * 2
ELSE 'No Commission'
END
FROM employees