Special quines and code golf, hooray!
Haskell, 350 346 342 bytes



main=interact f;f s|s==l++r=l|s/=l,s/=r=[]|1&lt;3=l++r;r=reverse l;l=q++shows q['-'];q="main=interact f;f s|s==l++r=l|s/=l,s/=r=[]|1&lt;3=l++r;r=reverse l;l=q++shows q['-'];q="--"=q;]'-'[q swohs++q=l;l esrever=r;r++l=3&lt;1|][=r=/s,l=/s|l=r++l==s|s f;f tcaretni=niam"=q;]'-'[q swohs++q=l;l esrever=r;r++l=3&lt;1|][=r=/s,l=/s|l=r++l==s|s f;f tcaretni=niam



Prints its left half with itself as input: https://tio.run/##7ZAxCoUwEESvEmwsoohYxjlJSBEkYvhrJNnwbXJ3f8gd7H4zsMPsY5jD8scRPc9pfYAP2SW7ZbGrXXBhgKRMoMITaKiSoE2Z16X5KiG5r0vsBClClJKP62YRdT/2RkV0r0DHsUNUpp46Cr6vg6WMqGHhuL2iQqQkLOtcjK74iQeqUgjNRy3RyuTNJpeDR/D2fAX63/WdXX8
Prints itself with its left half as input: Try it online!
Prints itself with its right half as input: Try it online!
Prints nothing with anything else as input: Try it online!


Edit: -8 bytes thanks to Ørjan Johansen! Also changed to a version which does not need (&lt;&gt;).