It is not surprising that you recovered different trees using different approaches. This happens frequently.
However, I'm not sure what you actually did. Did you estimate a NJ and ML tree and then bootstrap it with 1000 replicates? How did you estimate your ML tree i.e., which approach did you use? Did you correct your distances using a model of sequence evolution when you performed NJ? Did you select an appropriate model of sequence evolution under which to estimate your ML tree? Is the analysis concatenated or partitioned?
If you want a robust, publication-quality phylogenetic tree, I would:
1. Select a model of nucleotide sequence evolution. I recommend DT-ModSel. If this is a partitioned analysis, I recommend PartitionFinder.
2. Under this model, estimate a tree using maximum likelihood using Garli or PAUP*. Consider using MrBayes or BEAST to perform Bayesian phylogenetic inference. If your dataset is too large for these methods (thousands of sequences or tens of thousands of base pairs per individual), use neighbor joining or the approximate-likelihood approach implemented in RAxML. Correct the distances under the model you inferred.
3. Either generate bootstrap replicates or get posterior support values from your distribution of trees.
The downside of using MEGA for phylogenetic analysis is users often forgo using sophisticated methods for the ease of selecting options from menus. Phylogenetics is complicated, and this is a perfect example of why it's not possible for "phylogenetic trees [to be] made easy," to channel Barry Hall. For an applied introduction to the field, I recommend The Phylogenetic Handbook. For a theoretical introduction, I recommend Inferring Phylogenies.