Force number of entries
You can do it with a (derived) table that holds these 3 values and then LEFT joining it to the findings:

SELECT
    d.host_id, 
    CASE WHEN f.host_id IS NOT NULL THEN f.status ELSE 'No Data' END AS status 
FROM 
    ( SELECT 1 AS host_id UNION ALL
      SELECT 2 UNION ALL
      SELECT 3
    ) AS d
  LEFT JOIN 
    findings AS f 
      ON  f.finding_id = 1 
      AND f.host_id = d.host_id ; 


If the findings.status column is not nullable, you can replace the CASE ... END with the simpler:

    COALESCE(f.status, 'No data') AS status


If you have a hosts table (and a large number of IDs to check), the derived table can also be simplified:

...
FROM 
    ( SELECT host_id 
      FROM hosts
      WHERE host_id IN (1,2,3)
    ) AS d
  LEFT JOIN 
...