Mr Seckington weights his ternᵃʳʸ
MATL, 39 bytes
`x3:H-@Z^3@:q^*!tXsG=~}1MZ)Xzt0&gt;&amp;)_Xh&amp;D

The output lists are in reversed order. Each list is actually a column array of numbers (square brackets, semicolon as separator). In MATL, as in MATLAB and Octave, an array with a single number is the  same as a number, so in that case the corresponding list doesn't have enclosing brackets.
Try it online! Or verifiy all test cases.
How it works
This keeps testing sets of weights of increasing size: the set {1}, then {1, 3}, then {1, 3, 9}, ... This is done with a do...while loop.
For any such set, containing k different weights, all possible distributions of those weights are tested.
A distribution of weights is defined by a vector of k numbers, where each number may be -1, 0,  1, meaning that the corresponding weight is on the left side, unused, or on the right side. For each distribution, the sum is compared with the target weight. This is done in a vectorized manner, using 2D arrays.
If for a given set of weights there is a distribution of those weights that matches the target, the solution has been found.