В getElementById передаётся конкретно ID елемента, а вот в jQuery или querySelector передаётся CSS-селектор, который работает по правилам CSS.
Не понимаю, в чём проблема просто получить через getElementById или экранизировать квадратные скобки.
var elem = $(document.getElemenById('user[0]'));
var elem = $('[id="user\\[0\\]"]');