To re-phrase your question, yes, I think there is a use case when a GET is on-going and while evict is blocked. And when GET succeeds, evict will succeed as well in removing the same node. Next time GET will return a null.
But keep in mind that with eviction policy, there is no quaranttee that a GET will always be successful anyway. You will always need to guard against null return value anyway. So I don't think this is a serious issue. What do you think?
Finally, if CacheLoader is used, this is not an issue.