This is a casual way of saying that something is quite good:
A: How was the movie?
B: Not half bad!
A: Oh, great!
This is an example of understatement, which means to say something with much lower excitement or emphasis than normal. What you really mean is "This is really good!" but you say "This is not half bad" instead because:
- you want to seem relaxed and not too easily excited
- you want to express your feelings in an unexpected or funny way
An important point about understatement is that you do want people who are listening to understand how you really feel. You're not hiding your feelings or lying about them.
You can use "not half bad" in all kinds of situations, but it's most common in casual spoken English.