It depends what you mean by 'grammatically correct', Helen. The simple answer is 'No, it's wrong'. The correct form, as you say, should be 'I've got nothing to do'. In fact, there are even some people - who are wrong in my view - who will tell you that you shouldn't say 'I've got nothing to do', and insist that the only correct form is 'I have nothing to do'.
But the situation isn't really that simple. The fact is that a vast number of native English speakers say 'I got nothing to do' every day of their lives. So if you see grammar as being a description of the way that a language is used, you can hardly say that it's not correct. If a non-native learner makes a mistake and says, for example. 'I gots nothing to do'. then you would say that this is not correct. But can you really say that something is 'incorrect' if tens, possibly hundreds, of millions of native English speakers use their own language in this way? I'm not that sure you can.Rather than using the terms 'right' or 'wrong', it's perhaps more helpful to use the distinction 'standard' and 'non-standard'.
I have = standard: used in formal and neutral contexts
I've got = standard: used in neutral and informal contexts
I got = non-standard: acceptable only in some informal contexts
The non-standard form - considered 'wrong' by many people, but used in daily life by many others - is acceptable in informal conversation for some groups of people. The only time you would write it, though, is if you are writing captions or subtitles, quoting conversation, or imitating speech. Popular songs are an example of the imitation of informal speech.
So, to go back to your questions: Is it correct?
No, not according to the grammar books. But in the context of a popular song - yes, I think it's appropriate.
Should you say 'I've got ..' rather than 'I got'?
Yes, you should.