The confusion is caused by the lack of punctuation. With a question mark inserted, it reads perfectly.
'Been waiting for a bus long?' the old man asked me.
In certain regions you'll hear the question phrased like that, in other areas you'll hear 'been waiting long for a bus?' or even 'been waiting long?' on its own. As someone already said, it's a shortened version of 'Have you been waiting a long time?'