Вам просто нужно перейти туда, где это условие, и добавить WITH
следующим образом:
CALL apoc.load.json('file.txt') YIELD value AS q UNWIND q.id AS id UNWIND q.authors as authors
MERGE (a:Author {name:authors.name})
WITH a, q, authors
WHERE authors.org is not null
MERGE (o:Organization {name:authors.org})
MERGE (i:Paper {id:q.id}) ON CREATE SET i.title=q.title
MERGE (a)-[:WORKS_AT]->(o)
RETURN o.name;
Причина, по которой вы получаете сообщение об ошибке, состоит в том, что вы пытаясь сделать MERGE после WHERE, что не является синтаксически действительным. Запись структуры запроса в cypher работает следующим образом: (взято из cypher refcard )
[MATCH WHERE]
[OPTIONAL MATCH WHERE]
[WITH [ORDER BY] [SKIP] [LIMIT]]
(CREATE [UNIQUE] | MERGE)*
[SET|DELETE|REMOVE|FOREACH]*
[RETURN [ORDER BY] [SKIP] [LIMIT]]
После WHERE нет возможности использовать MERGE без сначала используя WITH.