If you are using Neo4j 4.x
MATCH (p:Person)-[:ACTED_IN]->(:Movie {name:"The Matrix"})
WHERE NOT EXISTS { (p) -[:ACTED_IN]-> (:Movie {name:"The Matrix Revolutions"}) }
RETURN p
The dominicvivek06 answer was not bad and for many cases might be more optimised. It's always better to return only the property(ies) you need.
Neo4j relies on two "world", the graph and the projected data from it.
It's always better to stay as less as possible in the graph world and work in the projected data world. The clauses RETURN and WITH are projecting clauses.
You can read more about the projection principle in the neo4j cypher manual if you want to know why the dominicvivek06 answer is probably better even if it seems more longer and complicated.