To elaborate on Paulo's answer...
You have established the following facts:
woman(alice). % 'alice' is a woman
woman(janice). % 'janice' is a woman
sisters(woman(X), woman(Y)). % woman(X) is a sister of woman(Y) for ANY X and Y
So you can see, for reasons Paulo points out about compound terms and that Prolog doesn't recursively query them, you're already headed in a direction you did not intend. In this context, you have stated a fact, sisters(woman(X), woman(Y)) with two independent, uninstantiated variables. Since they are variables, and you don't have any sisters/2 clause to constrain their values, they can be anything.
So for the following query:
sisters(X, Y).
Prolog looks at your facts and predicates for a match and finds, sisters(woman(X), woman(Y)). The logical answer is, therefore:
X = woman(_G2215)
Y = woman(_G2217)
This just says it is true for these values of X and Y where _G2215 and _G2217 are arbitrary variables. Any value of these would be true based upon the rules and facts you have stated. In particular that means that this is true:
sisters(woman(david), woman(xxxxxx))
Because X could be david and Y could be xxxxxx and it would be true, since your fact says:
sisters(woman(X), woman(Y)).
You could introduce a rule:
sisters(woman(X), woman(Y)) :- woman(X), woman(Y), X \= Y.
And then you'd start getting sensible answers to the query, sisters(X, Y):
X = woman(alice)
Y = woman(janice)
Or more simply, as you have:
sisters(X, Y) :- woman(X), woman(Y), X \= Y.
With result:
X = alice
Y = janice