Это разные объекты, потому что во втором примере вы извлекаете элемент DOM с индексом 0
...
// v------returns jQuery object
$('#id1').validate()
// v------returns jQuery object
$('form[id^="id"]')[0].validate()
// ^----------extracts the DOM element
Правильный эквивалент будет ...
$('form[id^="id"]').validate()
... или, если вы хотели только первый элемент ...
$('form[id^="id"]').eq(0).validate()