hola rakshaka, con LEFT JOIN puedes juntar los resultados de ambas tablas (como dijo abimaelrc), mira te dejo a continuacion unos pasos,
si se me fue alguna coma o algo demas, perdon, pero no lo revise
le coloque comentarios para q puedas entenderlo un poco, saludos espero te sirva.
Código PHP:
Ver original<?php
//$conexion modifica la funcion q tienes, no dejes espacios aqui conectarse (), agrupalo conectarse()
$conexion= conectarse();
//este valor lo puedes obtener por _GET o lo puedes especificar
$categoria= 1;
//si te preguntas por q nombre p y c a las tablas lo hice para identificar mas rapido los campos XP
//realizo la consulta a la base de datos juntando ambas tablas
$sql = "SELECT p.*, c.nombre_categoria, c.id_categoria"
. "\n FROM productos as p"
//junto el id de la categoria con la categoria padre de los productos
. "\n LEFT JOIN categorias as c ON c.id_categoria = p.categoria_padre"
//busco solo los de una categoria
. "\n WHERE c.id_categoria = '".$categoria."'"
. "\n ORDER BY p.id_producto";
//si encontramos algo en la categoria lo mostramos
if($fila):
?>
<!-- comienzo-->
<dt><?php echo $fila['nombre_categoria']; ?></dt>
<dd>
<span>
<?php foreach($fila as $items):?>
<p><?php echo $items['nombre_producto'];?></p>
<?php endforeach;?>
</span>
</dd>
<!-- fin/-->
<?php endif;?>
Ahh y trata de q cuando muestres una parte del codigo lo hagas dentro de un HIghlight ya sea de php de html u otro formato, pero es para q se entienda mejor, algo asi como lo q pusiste de la conexion, solo lo digo por el ultimo mensaje q posteaste, saludos