Negro e os cognatos noutras línguas (noir, nero, etc.) vêm do latim niger (nigrum no acusativo, que é a fonte do português e castelhano), que já significava ’preto, escuro’ e, figuradamente, ’funesto, mau’ (ver Etymoline e CNTRL).
Quanto a preto, não era necessário que houvesse cognatos noutras línguas, mas até há prieto no castelhano; só que significa ’muito escuro ou quase preto’, não exatamente ’preto’.
A origem de preto não está isenta de controvérsia. O dicionário Houaiss (Lisboa, 2002) diz que é um derivado regressivo de apretar, que é a forma original de apertar (daqui vem também perto, que no português medieval era preto; a forma perto está atestada só a partir do século XVI). Juan Corominas e José Pascual (Diccionario Crítico Etimológico Castellano e Hispánico, 1984) dizem o mesmo do português preto e do castelhano prieto. Portanto o sentido original de preto/prieto seria ’apertado’. Aliás, o castelhano prieto continua a significar ’justo, apertado’ e ’duro ou denso’. Segundo o Houaiss e Corominas e Pascual, o sentido ’cor escura’ de preto viria de ’apertado’ no sentido ’denso, espesso’. Corominas e Pascual (tomo I, p. 302-3 explicam melhor (tradução minha):
Prieto ’apertado’ […] É notável a aceção ’de cor escura’, ’negro’, que tomaram o castelhano antigo prieto⁷ e o português preto: procede da ideia de ’denso, espesso’ (sentido que [o castelhano] apretado tem em muitas passagens […]), que falando de névoa, poeira e análogos, equivale a ’escuro’
Agora, donde é que vem apretar é que já não há acordo. O Houaiss no verbete preto diz que vem da forma latina não atestada *prettus, que seria variante de pressus, que é particípio passado de premĕre; mas no verbete apert- diz que vem do latim tardio appectorāre, significando ’comprimir contra o peito’, derivado de pectus, ’peito’.
Ora premĕre significava ’premer, carregar’, e pressus, falando-se de cores, já significava ’deprimida, escura’ (Wikitionary e Lewis and Short). Podemos então perguntar porque é que preto não vem diretamente de *prettus, em vez de via apretar. Na verdade, o Aulete e o Michaelis dispensam o apretar e simplesmente dizem que preto vem do latim *prettus (mas não dizem que vem diretamente).
Corominas e Pascual rejeitam a origem em pressus. Dizem que a forma *prettus não é conhecida (o asterisco indica precisamente que a forma é conjetural) e que os únicos dois casos que eles conhecem de alternância entre -ss- e -t- no latim “são muito diferentes e têm explicações que não se poderiam aplicar a este *PRETTUS.”
A origem que eles defendem é: appectorāre → apetrar → apretar (em castelhano continua apretar). Eles notam que também do latim pectus pelas mesmas transformações vêm o castelhano pretil (’peitoril’) e pretal, pelos visto agora mais comumente petral (’correia que passa no peito do cavalo’, peitoral).
Corominas e Pascual discutem e rejeitam ainda outras hipóteses, que também a mim me parecem muito especulativas. Podem ler o verbete completo (página e meia!) no link.
Antenor Nascentes (Dicionário Etimológico da Língua Portuguesa, 1955, p. 415) apresenta ainda outras hipóteses. Diz que houve quem sugerisse origem no grego pyraithés, ’ardente, queimado pelo fogo’, e que o filólogo João Ribeiro propôs origem no latim pletu, ’cheio’, por uma associação em que “branco passou a designar vazio (em branco) e preto designava cheio”. Contra esta hipótese foi observado que pletu nunca daria prieto em castelhano, e que o latim plere (donde derivaria pletu) não é conhecido por si só; apenas com elemento compositivo de outros verbos, como implere, que nos deu encher, complere, que nos deu cumprir, etc.