According to the Kraft-McMillan theorem, a necessary and sufficient condition for $c$ to be uniquely decodable is that $\sum_{k=1}^4 n_k\left(\frac12\right)^k\le1\;.\tag{1}$ Thus, you need to find all of the $4$-tuples $\langle n_1,n_2,n_3,n_4\rangle$ of non-negative integers such that $(1)$ holds and $n_1+n_2+n_3+n_4=12$.
One way to do it systematically is to observe that $\langle 0,0,0,12\rangle$ is a solution and then try to transfer $4$-bit strings to shorter strings. For instance, $\langle 0,0,1,11\rangle$ is still okay, because $\frac18+\frac{11}{16}\le1$. What about $\langle 0,0,2,10\rangle$? The lefthand side of $(1)$ is then $\frac28+\frac{10}{16}=\frac78\le1$, so that’s okay, too. So are $\langle 0,0,3,9\rangle$ and $\langle 0,0,4,8$: the sums are $\frac38+\frac9{16}=\frac{15}{16}\le1$ and $\frac48+\frac8{16}=1$. But $\langle 0,0,5,7\rangle$ isn’t acceptable: $\frac58+\frac7{16}=\frac{17}{16}>1$.
There are ways to speed things up, but a good way to discover some of them is to continue the brute-force procedure until you start seeing some patterns. For instance, you might notice just in what I did above that every time I transferred one symbol from a $4$-bit to a $3$-bit code, the sum on the lefthand side of $(1)$ increased by $1/16$. Can you see why? Better yet, can you see how to make use of this in transferring symbols between codes of other lengths?