Checking whether an item does not exist in another table
In general if you want rows that don't exist in another table, then LEFT JOIN the other table and WHERE ... IS NULL to a column on the second table. Also you mentioned that you don't want rows where process.id_string is NULL.
SELECT p.name, p.id_stringFROM process p LEFT JOIN value_search v ON v.id_string = p.id_stringWHERE v.id_string IS NULL AND p.id_string IS NOT NULL
This is known as an anti-join.
The query you want should look something like this. Note that a JOIN will be significantly faster than a subquery in the WHERE clause.
SELECT p.name, p.id_stringFROM process pLEFT OUTER JOIN value_search v ON p.id_string = v.id_string AND p.id_string IS NOT NULL AND v.id_string IS NULL
An equally valid variant of the query above would be:
SELECT p.name, p.id_stringFROM process pLEFT OUTER JOIN value_search v ON p.id_string = v.id_stringWHERE p.id_string IS NOT NULL AND v.id_string IS NULL