If I read you correctly, you have the reduction wrong. Essentially, you need to use a transformation $f$ from an instance of $A_{TM}$ to an instance of $CF_{TM}$ such that
$$
\langle{M, w}\rangle\in A_{TM} \Longleftrightarrow L(f(\langle{M, w}\rangle)) \text{ is a CFL}
$$
To this end, let's define $f(\langle{M, w}\rangle)$ to be the description of a TM $N$ where
N(x) =
if x = a^(2^n) for some n
return accept
else if M(w) = accept and x = a^k for some k
return accept
Now if $\langle{M, w}\rangle\in A_{TM}$, it's clear that $L(N)=a^*$, the language of all strings of as which, being regular, is certainly a CFL. On the other hand, if $\langle{M, w}\rangle\notin A_{TM}$ then we skip the else part of the code of $N$ and so
$$
L(N) = \{a^{2^n}\mid n\ge 0\}
$$
which is well-known to be not a CFL.
This, by the way is a very handy idiom: have both parts accept a non-"whatever" language and the last part activate to add enough strings to get what you need to make a "whatever" language.