Похоже, вы добавляете значок после того, как само меню было прикреплено к фрейму. Вы должны выполнить все операции с меню перед его отображением или вызвать
menuBar.validate();
menuBar.paint();
после того, как все меню оформлены.
У меня есть что-то вроде этого
JMenu mFoo = new JMenu("Foo");
mFoo.setIcon(new ImageIcon("icon.png"));
JMenuBar menuBar = new JMenuBar();
menuBar.add(mFoo);
setJMenuBar(menuBar);
в моем JFrame
работает отлично, также с GTK look-and-feel.