APL (Dyalog Classic), 13 bytes
⍪,⊃∘.,/⎕,¨⊂⊂⍬
outputOutput:
1 2 3
1 2
1 3
1
2 3
2
3
there'sThere's a blank line at the end to represent the empty set.
Explanation:
⎕
evaluated input
⎕,¨⊂⊂⍬
append an empty numeric list after each element
∘.,
Cartesian product
/
reduction (foldr)
⊃
disclose (necessary after reduction in APL)
At this point the result is an n-dimensional 2-by-...-by-2 array, where n is the length of the input.
,
flatten into a vector
⍪
turn the vector into an upright 2n-by-1 matrix, so each subset is on a separate line