Actually, 26 bytes
;DY⌠;±2k.⌂⌡nfuóD;;1&YτD*k╔ This answer utilizes the fact that, for all Fibonacci numbers \$ F = Fib(n) \$, \$F \gt 1 \land n \vert 2 \iff F = ExtFib(-n) \$. A special case is used to handle input of 1.
;DY⌠;±2k.⌂⌡nfuóD;;1&YτD*k╔ ;DY⌠;±2k.⌂⌡n special-casing for 1: ;DY duplicate, decrement, logical negate (turns 1 into 1 and others into 0) ⌠;±2k.⌂⌡n execute this code that many times: ;±2k make a list from the existing 1 on the stack, its negative (-1), and 2 .⌂ print the list and exit f index in Fibonacci sequence (-1 if not Fibonacci number) uó increment and conditionally terminate (terminate if -1) D;; decrement and make two copies 1&Y binary AND with 1, logical negate (1 if divisible by 2 else 0) τD double and decrement (map [0,1] to [-1, 1]) *k multiply Fibonacci index by result, push entire stack to list (either [n, n] or [n, -n]) ╔ deduplicate list ([n] or [-n, n]) (implicit print)