Как изменить события после первого клика?
Добавляете data атрибут к элементу.

Если ничего нет в нём - запуск 1 логики
Если есть запуск 2й
Так а почему не ввести новую переменную?
Что-то в таком духе:
let isFirstClick = true;

$(".products-toggle").click(function(e) {

 if (isFirstClick) {
        e.preventDefault();
       //первый цикл
        productsRow = $(this).parent().siblings('.products-row');        
         if(productsRow .hasClass("shown")) {
            productsRow .animate({"height": "50px"}).removeClass("shown");
         } else {
            productsRow .animate({"height": "auto"}).addClass("shown");
            animateHeight = productsRow .height();
         } 

isFirstClick = false;
}

 else if (!(isFirstClick)) {

        //после первого выполнять это    
         if(productsRow .hasClass("shown")) {
            productsRow .animate({"height": "50px"}).removeClass("shown");
         } else {
            productsRow .animate({"height": animateHeight }).addClass("shown");
         } 

}

    });