So I managed to achieve what i wanted. This might not be best practice or right way of doing that, but I will stick with it till I find a better solution.
From my product-new component, I replaced it with product-list page rather than just poping it. Doing so new product-list will be created on top of the stack with fresh data. But then there will be 2 product-list in the stack back to back. Top on with refreshed data, 2nd top with old data. Now delete the 2nd top product-list from stack and your are good now.
Below is my code.
this.navi.nativeElement.removePage(1); // 1 represents the index of the previous ProductListPageComponent, this will be different in your case.
Please let me know know if there is a better way of doing that.