Hace años que no hago nada con JavaScript, pero la lógica de la programación es común a todos los lenguajes.
Y la lógica que aplicas, pues no es muy lógica la verdad

Primero incrementas la variable contador, sin motivo aparente, ya que no se te pide contar nada
contador++;
Ese incremento de contador, no importa de todos modos, porque ahora modificas su valor asignando lo que va a introducir el usuario. Cualquier cosa que hubieras contado, se pierde:
contador = parseFloat(prompt("Ingrese un numero positivo o negativo"));
Preguntas al usuario si quiere continuar. Quizás sería más lógico preguntarlo después de hacer los cálculos y no antes, pero bueno, la verdad es que no afecta al funcionamiento así que no pasa nada malo.
respuesta = prompt("Desea continuar? Escriba 'si' para continuar, 'no' para salir");
A continuación, la lógica pierde todo sentido.
En respuesta, donde el usuario te ha dicho si quiere continuar o no, cambias su valor juntando la respuesta más el número introducido.
Pero tampoco importa, porque en la siguiente líneas vuelves a modificar el valor de respuesta asignándole el valor de la variable multiplicacionNegativos, que lo único que tiene es el valor 1 que ha recibido al inicializarse.
Y luego a multiplicacionNegativos, le asignas su valor actual (que es 1) multiplicado por su valor actual (1).
Como 1 * 1 es igual a 1, pues multiplicacionNegativos sigue conservando su valor inicial.
if(contador<0)
{
respuesta = respuesta + contador
respuesta = multiplicacionNegativos;
multiplicacionNegativos = multiplicacionNegativos * multiplicacionNegativos;
break;
}
No necesitas una variable contador, ni necesitas juntar el contador con la respuesta, ni nada de eso.
Prueba con el código como lo escribo a continuación. Yo no lo he probado pero diría que es correcto.
Pregunta si algo no te queda claro, pero creo que a simple vista verás lo que hace, y que es más sencillo de lo que parece.
Un saludo.
function mostrar()
{
let respuesta;
let numero;
let sumaPositivos;
let multiplicacionNegativos;
numero = 0;
sumaPositivos=0;
multiplicacionNegativos=1;
respuesta = "si";
while(respuesta != "no")
{
numero = parseFloat(prompt("Ingrese un numero positivo o negativo"));
if(numero<0)
{
multiplicacionNegativos = multiplicacionNegativos * numero;
break;
}
else if(contador>=0)
{
sumaPositivos = sumaPositivos + numero;
break;
}
else
{
alert("Ingrese un número válido");
break;
}
respuesta = prompt("Desea continuar? Escriba 'si' para continuar, 'no' para salir");
}
document.getElementById("txtIdSuma").value = sumaPositivos;
document.getElementById("txtIdProducto").value = multiplicacionNegativos;