Перед вашим предложением SET
стоит запятая:
ON CREATE SET node.firstseen = timestamp(),
^
Правильный запрос:
MERGE (node:Graph {id:$id})
ON CREATE SET node.firstseen = timestamp()
SET
node.list = $list
Вам не нужно устанавливать поле id
,MERGE
позаботится об этом. Поле list
будет устанавливаться при каждом вызове запроса, отметка времени firstseen
будет только тогда, когда узел не существует.