Hi,
1.Yes, you can use BFS to find connected components. Just run BFS from any vertex, when the algorithms terminates, run in from a vertex that is still white, and so on.
2. If all the edges have integer weights, for example, subtract $\frac{1}{2|E|}$ from every edge, and find a negative cycle. If there was a cycle of weight 0 it is now negative. But any cycle that was positive before is still positive, (it had weight at least 1) so you know you found a negative cycle iff there was a cycle of weight 0 relative to the original weights.

($\frac{1}{2|E|}$ is arbitrary, you can subtract $\frac{1}{|V|+1}$ or $\frac{1}{10|V|}$ or anything that makes sure that any positive cycle remains positive.)