If the return is empty (RESULT_NONE), you should. That is until the next release after AMXX 1.55 at which time a return of RESULT_NONE will automatically free the result. See
this post for more information.
If the query fails (RESULT_FAIL), I don't believe you need to free the result as you really don't have a result in the sense of a dataset.